hw-arch
created ... ago
updated ... ago
#resource
#translate

Idea

A simple categorization for computers with single processors and multiple parallel processors. Does not exactly reflect the modern designs, but good enough for getting a general understanding.

SISD

Single Instruction, Single Data

sisd-drawing.dark.svg

A Processing Unit is a combination of an alu and a cu in this case. It also has its own memory.

Example: single-core microcontrollers, like the ATmega328 used in several popular arduino boards.

SIMD

Single Instruction, Multiple Data

simd-drawing.dark.svg

A Processing Element is usually just an alu, no control logic. The cu is represented by the dot connecting them.

Example: parts of modern GPUs, say, the CUDA cores

MISD

Multiple Instruction, Single Data

misd-drawing.dark.svg

Rarely used, most often found in safety-critical systems. The processing units are independent, have their own memory, and must come to the same conclusion to guarantee correct operation.

Example: the space shuttle flight computer. Couldn't find anything newer, if you do, please lmk.

MIMD

Multiple Instruction, Multiple Data

mimd-drawing.dark.svg

Modern multicore CPUs work like this. There are 2 primary types of MIMD systems:

Example: Ryzen 5600.

Exception: socs have a SIMD GPU and a MIMD CPU.


Sources: